راهنمای جامع دسترسپذیری وب، با تمرکز بر بهینهسازی وبسایتها برای سازگاری با صفحهخوان جهت تضمین فراگیری برای همه کاربران.
دسترسپذیری وب: بهینهسازی وبسایت شما برای کاربران صفحهخوان
در عصر دیجیتال امروز، دسترسپذیری وب تنها یک ویژگی خوب نیست؛ بلکه یک الزام اساسی است. وبسایتی که دسترسپذیر باشد تضمین میکند که افراد دارای معلولیت، از جمله کسانی که به صفحهخوانها تکیه میکنند، میتوانند وب را درک، فهم، پیمایش و با آن تعامل کنند.
این راهنمای جامع به جزئیات بهینهسازی وبسایت شما برای کاربران صفحهخوان میپردازد و تکنیکهای ضروری، بهترین شیوهها و مثالهای واقعی را پوشش میدهد.
صفحهخوان چیست؟
صفحهخوان یک فناوری کمکی است که متن و سایر عناصر روی صفحه کامپیوتر را به خروجی گفتاری یا بریل تبدیل میکند. این فناوری به افراد کمبینا یا نابینا اجازه میدهد تا به محتوay دیجیتال دسترسی داشته باشند و با آن تعامل کنند. صفحهخوانهای محبوب عبارتند از:
- JAWS (Job Access With Speech): یک صفحهخوان پرکاربرد برای ویندوز.
- NVDA (NonVisual Desktop Access): یک صفحهخوان رایگان و منبعباز برای ویندوز.
- VoiceOver: صفحهخوان داخلی اپل برای macOS و iOS.
- ChromeVox: یک افزونه صفحهخوان برای گوگل کروم و سیستمعامل کروم.
- Orca: یک صفحهخوان رایگان و منبعباز برای لینوکس.
صفحهخوانها با تفسیر کد زیربنایی یک وبسایت و ارائه اطلاعات در مورد محتوا و ساختار به کاربر کار میکنند. بسیار مهم است که وبسایتها به گونهای ساختار یافته باشند که صفحهخوانها بتوانند به راحتی آن را بفهمند و پیمایش کنند.
چرا بهینهسازی برای صفحهخوان مهم است؟
بهینهسازی وبسایت شما برای صفحهخوانها مزایای بیشماری دارد:
- فراگیری: تضمین میکند که کاربران کمبینا یا نابینا میتوانند به طور مؤثر به وبسایت شما دسترسی داشته باشند و از آن استفاده کنند.
- انطباق قانونی: بسیاری از کشورها قوانین و مقرراتی دارند که دسترسپذیری وب را الزامی میکند (مانند قانون آمریکاییهای دارای معلولیت (ADA) در ایالات متحده، قانون دسترسپذیری برای انتاریوییهای دارای معلولیت (AODA) در کانادا و EN 301 549 در اروپا).
- تجربه کاربری بهبودیافته: طراحی دسترسپذیر اغلب به تجربه کاربری بهتر برای همه کاربران، صرف نظر از معلولیت، منجر میشود.
- دسترسی به مخاطبان گستردهتر: با دسترسپذیر کردن وبسایت خود، آن را برای مخاطبان بالقوه بزرگتری باز میکنید.
- مزایای سئو: موتورهای جستجو وبسایتهای دسترسپذیر را ترجیح میدهند که میتواند رتبهبندی شما در موتورهای جستجو را بهبود بخشد.
اصول کلیدی بهینهسازی برای صفحهخوان
اصول زیر برای ایجاد وبسایتهای سازگار با صفحهخوان ضروری است:
۱. HTML معنایی (Semantic HTML)
استفاده صحیح از عناصر HTML معنایی برای ارائه ساختار و معنا به محتوای شما بسیار مهم است. عناصر معنایی هدف بخشهای مختلف وبسایت شما را به صفحهخوانها منتقل میکنند و به کاربران اجازه میدهند تا به طور مؤثرتری پیمایش کنند.
مثالها:
- از
<header>
برای سربرگ سایت استفاده کنید. - از
<nav>
برای منوهای ناوبری استفاده کنید. - از
<main>
برای بخش محتوای اصلی استفاده کنید. - از
<article>
برای دربرگرفتن بلوکهای محتوای مستقل استفاده کنید. - از
<aside>
برای محتوای تکمیلی استفاده کنید. - از
<footer>
برای پاورقی سایت استفاده کنید. - از
<h1>
تا<h6>
برای عناوین استفاده کنید. - از
<p>
برای پاراگرافها استفاده کنید. - از
<ul>
و<ol>
برای لیستها استفاده کنید.
کد نمونه:
<header>
<h1>وبسایت من</h1>
<nav>
<ul>
<li><a href="#">خانه</a></li>
<li><a href="#">درباره ما</a></li>
<li><a href="#">خدمات</a></li>
<li><a href="#">تماس با ما</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>عنوان مقاله</h2>
<p>این محتوای اصلی مقاله است.</p>
</article>
</main>
<footer>
<p>حق نشر ۲۰۲۳</p>
</footer>
۲. متن جایگزین برای تصاویر
تصاویر باید همیشه دارای متن جایگزین (alt text) توصیفی باشند که محتوا و هدف تصویر را به کاربران صفحهخوان منتقل کند. متن جایگزین باید مختصر و آموزنده باشد.
بهترین شیوهها:
- برای همه تصاویر، از جمله تصاویر تزئینی، متن جایگزین ارائه دهید.
- متن جایگزین را کوتاه و توصیفی نگه دارید.
- از عباراتی مانند «تصویری از» یا «عکسی از» خودداری کنید.
- برای تصاویر پیچیده، از یک توصیف طولانی (ویژگی
longdesc
یا یک متن توصیفی جداگانه) استفاده کنید. - اگر یک تصویر صرفاً تزئینی است و هیچ معنایی اضافه نمیکند، از یک ویژگی alt خالی (
alt=""
) استفاده کنید تا صفحهخوانها آن را اعلام نکنند.
کد نمونه:
<img src="logo.png" alt="لوگوی شرکت">
<img src="decorative.png" alt="">
۳. ویژگیهای ARIA
ویژگیهای ARIA (Accessible Rich Internet Applications) اطلاعات بیشتری را در مورد نقش، وضعیت و ویژگیهای عناصر به صفحهخوانها ارائه میدهند، بهویژه برای محتوای پویا و ویجتهای پیچیده. ویژگیهای ARIA میتوانند دسترسپذیری را در مواردی که HTML معنایی به تنهایی کافی نیست، افزایش دهند.
ویژگیهای رایج ARIA:
- role: نقش یک عنصر را تعریف میکند (مثلاً
role="button"
,role="navigation"
). - aria-label: یک برچسب متنی برای یک عنصر فراهم میکند، زمانی که برچسب بصری وجود ندارد یا کافی نیست.
- aria-labelledby: یک عنصر را با عنصر دیگری که به عنوان برچسب آن عمل میکند، مرتبط میسازد.
- aria-describedby: یک عنصر را با عنصر دیگری که توضیحی برای آن ارائه میدهد، مرتبط میسازد.
- aria-hidden: یک عنصر را از دید صفحهخوانها پنهان میکند.
- aria-live: نشان میدهد که محتوای یک عنصر به صورت پویا بهروزرسانی میشود (مثلاً
aria-live="polite"
,aria-live="assertive"
). - aria-expanded: نشان میدهد که آیا یک عنصر جمعشونده در حال حاضر باز یا بسته است.
- aria-haspopup: نشان میدهد که یک عنصر دارای یک منوی پاپآپ است.
کد نمونه:
<button role="button" aria-label="بستن گفتگو" onclick="closeDialog()">X</button>
<div id="description">این توصیفی از تصویر است.</div>
<img src="example.jpg" aria-describedby="description" alt="تصویر نمونه">
نکته مهم: از ویژگیهای ARIA با احتیاط استفاده کنید. استفاده بیش از حد از ARIA میتواند مشکلات دسترسپذیری ایجاد کند. همیشه ابتدا از عناصر HTML معنایی استفاده کنید و فقط در صورت لزوم برای تکمیل یا جایگزینی معنای پیشفرض، از ARIA استفاده کنید.
۴. ناوبری با صفحهکلید
اطمینان حاصل کنید که تمام عناصر تعاملی در وبسایت شما فقط با استفاده از صفحهکلید قابل پیمایش هستند. این برای کاربرانی که نمیتوانند از ماوس یا دستگاه اشارهگر دیگری استفاده کنند، حیاتی است. ناوبری با صفحهکلید به شدت به استفاده صحیح از نشانگرهای فوکوس و ترتیب منطقی تب بستگی دارد.
بهترین شیوهها:
- نشانگرهای فوکوس: اطمینان حاصل کنید که همه عناصر تعاملی (مانند لینکها، دکمهها، فیلدهای فرم) هنگام انتخاب شدن، یک نشانگر فوکوس واضح و قابل مشاهده دارند. از CSS برای استایل دادن به حالت
:focus
استفاده کنید. - ترتیب تب: ترتیب تب باید از ترتیب منطقی خواندن صفحه پیروی کند (معمولاً از چپ به راست، از بالا به پایین). در صورت لزوم از ویژگی
tabindex
برای تنظیم ترتیب تب استفاده کنید. از استفاده ازtabindex="0"
وtabindex="-1"
خودداری کنید مگر اینکه کاملاً ضروری باشد، زیرا در صورت استفاده نادرست میتوانند مشکلات دسترسپذیری ایجاد کنند. - لینکهای پرش از ناوبری: یک لینک «پرش به محتوای اصلی» در بالای صفحه قرار دهید که به کاربران اجازه میدهد از منوی ناوبری اصلی عبور کرده و مستقیماً به محتوای اصلی بپرند. این به ویژه برای کاربرانی که از صفحهخوان استفاده میکنند مفید است، زیرا نیاز به پیمایش از طریق لینکهای ناوبری تکراری در هر صفحه را کاهش میدهد.
- دیالوگهای مودال: هنگامی که یک دیالوگ مودال باز میشود، اطمینان حاصل کنید که فوکوس تا زمان بسته شدن آن در داخل دیالوگ محبوس میشود. از تب زدن کاربران به خارج از دیالوگ جلوگیری کنید.
کد نمونه (لینک پرش از ناوبری):
<a href="#main-content" class="skip-link">پرش به محتوای اصلی</a>
<header>
<nav>
<!-- منوی ناوبری -->
</nav>
</header>
<main id="main-content">
<!-- محتوای اصلی -->
</main>
کد نمونه (CSS برای نشانگر فوکوس):
a:focus, button:focus, input:focus, textarea:focus, select:focus {
outline: 2px solid blue;
outline-offset: 2px;
}
۵. دسترسپذیری فرمها
فرمها بخش مهمی از بسیاری از وبسایتها هستند و اطمینان از دسترسپذیری آنها برای کاربران صفحهخوان ضروری است. برچسبگذاری مناسب، دستورالعملهای واضح و مدیریت خطا برای دسترسپذیری فرمها حیاتی است.
بهترین شیوهها:
- برچسبگذاری: از عنصر
<label>
برای مرتبط کردن برچسبها با فیلدهای فرم استفاده کنید. ویژگیfor
در عنصر<label>
باید با ویژگیid
فیلد فرم مربوطه مطابقت داشته باشد. - دستورالعملها: دستورالعملهای واضح و مختصری برای پر کردن فرم ارائه دهید. از ویژگی
aria-describedby
برای مرتبط کردن دستورالعملها با فیلدهای فرم استفاده کنید. - مدیریت خطا: پیامهای خطا را به وضوح و برجستگی نمایش دهید. از ویژگی
aria-live
برای اعلام پیامهای خطا به کاربران صفحهخوان استفاده کنید. پیامهای خطا را با فیلدهای فرم مربوطه با استفاده از ویژگیaria-describedby
مرتبط کنید. - فیلدهای الزامی: فیلدهای الزامی را هم به صورت بصری و هم به صورت برنامهنویسی به وضوح مشخص کنید. از ویژگی
required
برای علامتگذاری فیلدهای الزامی استفاده کنید. از ویژگیaria-required
برای نشان دادن الزامی بودن یک فیلد به کاربران صفحهخوان استفاده کنید. - گروهبندی فیلدهای مرتبط: از عناصر
<fieldset>
و<legend>
برای گروهبندی فیلدهای فرم مرتبط استفاده کنید.
کد نمونه:
<label for="name">نام:</label>
<input type="text" id="name" name="name" required aria-required="true">
<div id="name-instructions">لطفاً نام کامل خود را وارد کنید.</div>
<label for="name">نام:</label>
<input type="text" id="name" name="name" aria-describedby="name-instructions">
<form>
<fieldset>
<legend>اطلاعات تماس</legend>
<label for="email">ایمیل:</label>
<input type="email" id="email" name="email" required aria-required="true"><br><br>
<label for="phone">تلفن:</label>
<input type="tel" id="phone" name="phone">
</fieldset>
</form>
۶. دسترسپذیری محتوای پویا
هنگامی که محتوای وبسایت شما به صورت پویا تغییر میکند (مثلاً از طریق AJAX یا JavaScript)، بسیار مهم است که اطمینان حاصل کنید کاربران صفحهخوان از این تغییرات مطلع میشوند. از مناطق زنده ARIA (ARIA live regions) برای اعلام بهروزرسانیهای محتوای پویا استفاده کنید.
مناطق زنده ARIA:
- aria-live="off": مقدار پیشفرض. بهروزرسانیهای منطقه اعلام نمیشوند.
- aria-live="polite": بهروزرسانیها را زمانی که کاربر بیکار است اعلام میکند. این رایجترین و توصیهشدهترین مقدار است.
- aria-live="assertive": بهروزرسانیها را فوراً اعلام میکند و صحبت کاربر را قطع میکند. از این مقدار به ندرت استفاده کنید، زیرا میتواند مزاحم باشد.
کد نمونه:
<div aria-live="polite" id="status-message"></div>
<script>
// هنگامی که محتوا بهروزرسانی میشود، پیام وضعیت را بهروز کنید
document.getElementById('status-message').textContent = "محتوا با موفقیت بهروز شد!";
</script>
۷. کنتراست رنگ
اطمینان حاصل کنید که کنتراست رنگ کافی بین رنگ متن و پسزمینه وجود دارد. این برای کاربران کمبینا یا کوررنگ مهم است. دستورالعملهای دسترسپذیری محتوای وب (WCAG) نسبت کنتراست حداقل ۴.۵:۱ برای متن معمولی و ۳:۱ برای متن بزرگ را الزامی میکند.
ابزارهای بررسی کنتراست رنگ:
- WebAIM Color Contrast Checker (webaim.org/resources/contrastchecker/)
- Coolors (coolors.co)
- Adobe Color (color.adobe.com)
۸. دسترسپذیری رسانه
اگر وبسایت شما شامل محتوای صوتی یا تصویری است، برای کاربرانی که نمیتوانند محتوا را ببینند یا بشنوند، جایگزینهایی فراهم کنید. این موارد عبارتند از:
- زیرنویسها (Captions): برای تمام محتوای ویدیویی زیرنویس ارائه دهید. زیرنویسها متن هماهنگشدهای از дорожка صوتی هستند.
- رونوشتها (Transcripts): برای تمام محتوای صوتی و تصویری رونوشت متنی ارائه دهید. رونوشتها باید شامل تمام محتوای گفتاری و همچنین توصیف صداها و عناصر بصری مهم باشند.
- توضیحات صوتی (Audio Descriptions): برای محتوای ویدیویی توضیحات صوتی ارائه دهید. توضیحات صوتی عناصر بصری ویدیو را برای کاربرانی که نابینا یا کمبینا هستند، روایت میکنند.
۹. تست با صفحهخوانها
مؤثرترین راه برای اطمینان از دسترسپذیر بودن وبسایت شما برای کاربران صفحهخوان، آزمایش آن با انواع صفحهخوانها است. این به شما کمک میکند تا هرگونه مشکل دسترسپذیری موجود را شناسایی و برطرف کنید.
ابزارهای تست:
- تست دستی: از صفحهخوانهایی مانند NVDA (رایگان)، JAWS (پولی) یا VoiceOver (داخلی در macOS و iOS) برای پیمایش وبسایت خود استفاده کنید. سعی کنید وظایف و تعاملات رایج را کامل کنید.
- تست خودکار: از ابزارهای تست دسترسپذیری برای شناسایی مشکلات بالقوه دسترسپذیری استفاده کنید. این ابزارها میتوانند به شما در یافتن خطاهای رایج کمک کنند، اما نباید جایگزین تست دستی شوند. برخی از ابزارهای محبوب تست دسترسپذیری عبارتند از:
- WAVE (Web Accessibility Evaluation Tool)
- axe DevTools
- Lighthouse (در Chrome DevTools)
نکاتی برای تست با صفحهخوانها:
- اصول اولیه را بیاموزید: با دستورات و تکنیکهای ناوبری اصلی صفحهخوانی که استفاده میکنید، آشنا شوید.
- از صفحهخوانهای مختلف استفاده کنید: وبسایت خود را با انواع صفحهخوانها تست کنید، زیرا هر صفحهخوان محتوای وب را به طور متفاوتی تفسیر میکند.
- کاربران دارای معلولیت را درگیر کنید: بهترین راه برای اطمینان از دسترسپذیر بودن وبسایت شما، درگیر کردن کاربران دارای معلولیت در فرآیند تست است. از کاربران صفحهخوان در مورد قابلیت استفاده و دسترسپذیری وبسایت خود بازخورد بگیرید.
WCAG (دستورالعملهای دسترسپذیری محتوای وب)
دستورالعملهای دسترسپذیری محتوای وب (WCAG) مجموعهای از دستورالعملهای شناختهشده بینالمللی برای دسترسپذیرتر کردن محتوای وب هستند. WCAG توسط کنسرسیوم وب جهانی (W3C) توسعه یافته و به طور گسترده به عنوان استانداردی برای دسترسپذیری وب استفاده میشود.
WCAG حول چهار اصل سازماندهی شده است که به عنوان POUR شناخته میشوند:
- قابل درک (Perceivable): اطلاعات و اجزای رابط کاربری باید به گونهای به کاربران ارائه شوند که بتوانند آنها را درک کنند.
- قابل استفاده (Operable): اجزای رابط کاربری و ناوبری باید قابل استفاده باشند.
- قابل فهم (Understandable): اطلاعات و عملکرد رابط کاربری باید قابل فهم باشند.
- مستحکم (Robust): محتوا باید به اندازه کافی مستحکم باشد تا بتواند توسط طیف گستردهای از عوامل کاربری، از جمله فناوریهای کمکی، به طور قابل اعتمادی تفسیر شود.
WCAG به سه سطح انطباق تقسیم میشود: A، AA و AAA. سطح A ابتداییترین سطح دسترسپذیری است، در حالی که سطح AAA بالاترین سطح است. اکثر سازمانها برای انطباق با سطح AA تلاش میکنند.
نتیجهگیری
بهینهسازی وبسایت شما برای کاربران صفحهخوان یک گام اساسی در جهت ایجاد یک تجربه آنلاین واقعاً فراگیر و دسترسپذیر است. با پیروی از اصول و بهترین شیوههای ذکر شده در این راهنما، میتوانید اطمینان حاصل کنید که وبسایت شما برای همه کاربران، صرف نظر از معلولیت، دسترسپذیر است.
به یاد داشته باشید که دسترسپذیری وب یک فرآیند مداوم است. به طور منظم وبسایت خود را با صفحهخوانها و ابزارهای تست دسترسپذیری آزمایش کنید و از آخرین دستورالعملها و بهترین شیوههای دسترسپذیری مطلع بمانید. با اولویت قرار دادن دسترسپذیری، میتوانید وب بهتری برای همه ایجاد کنید.
منابع بیشتر:
- WebAIM: https://webaim.org/
- W3C Web Accessibility Initiative (WAI): https://www.w3.org/WAI/
- Deque University: https://dequeuniversity.com/